home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v9n18.arc / PREVENT.PRG < prev   
Text File  |  1990-10-04  |  3KB  |  79 lines

  1. PROCEDURE Addempl
  2. *
  3. * Demonstrate general logic for checking for duplicate
  4. * keys.  Abbreviated version, for illustration
  5. * only, dBASE III Plus tested.
  6. *
  7. adrecno = RECNO()               && Save current recno
  8. DO WHILE .T.
  9.    STORE SPACE(11) TO M_ssn     && Create blank memvars
  10.    STORE SPACE(25) TO M_name
  11.    STORE SPACE(40) TO M_address
  12.    STORE SPACE(20) TO M_city
  13.    STORE SPACE(2) TO M_state
  14.    STORE SPACE(10) TO M_zip
  15.    READ                         && Display entry screen
  16.    IF READKEY() = 12            && ESC means cancel
  17.       EXIT
  18.    ENDIF
  19.    SEEK m_ssn                   && Check for ssn duplicate
  20.    IF FOUND()
  21.       @ 8,0 SAY '    Record with that key already exists.  Try again.'
  22.       @ 9,0 SAY '              Press any key to continue.            '
  23.       WAIT ""
  24.       GOTO adrecno
  25.       LOOP
  26.    ELSE
  27.       APPEND BLANK              && No dups, ok to add
  28.       REPLACE SSN WITH M_SSN    && Replace fields with memvars
  29.       REPLACE NAME WITH M_NAME
  30.       REPLACE ADDRESS WITH M_ADDRESS
  31.       REPLACE CITY WITH M_CITY
  32.       REPLACE STATE WITH M_STATE
  33.       REPLACE ZIP WITH M_ZIP
  34.       adrecno = RECNO()         && New record number
  35.       EXIT
  36.    ENDIF
  37. ENDDO
  38. GOTO adrecno
  39. RETURN
  40.  
  41. PROCEDURE editempl
  42. *
  43. * Demonstrate general logic for checking for duplicate
  44. * keys.  Abbreviated version, for illustration
  45. * only, dBASE III Plus tested.
  46. *
  47. STORE RECNO() to edrecno        && Save current position
  48. DO WHILE .T.
  49.    STORE ssn TO M_ssn           && Create memvars from record
  50.    STORE name TO M_name
  51.    STORE address TO M_address
  52.    STORE city TO M_city
  53.    STORE state TO M_state
  54.    STORE zip TO M_zip
  55.    READ                         && Display entry screen
  56.    IF READKEY() = 12            && ESC means cancel
  57.       EXIT
  58.    ENDIF
  59.    IF M_ssn # ssn               && If it's been changed
  60.       SEEK m_ssn                && Check for ssn duplicate
  61.       IF FOUND()
  62.          GOTO edrecno           && Restore position after seek
  63.          @ 8,0 SAY '    Record with that key already exists.  Try again.'
  64.          @ 9,0 SAY '             Press any key to continue.             '
  65.          WAIT ""
  66.          LOOP
  67.       ENDIF
  68.    ENDIF
  69.    REPLACE SSN WITH M_SSN       && Replace fields with memvars
  70.    REPLACE NAME WITH M_NAME
  71.    REPLACE ADDRESS WITH M_ADDRESS
  72.    REPLACE CITY WITH M_CITY
  73.    REPLACE STATE WITH M_STATE
  74.    REPLACE ZIP WITH M_ZIP
  75.    EXIT
  76. ENDDO
  77. GOTO edrecno                    && Restore position after seek
  78. RETURN
  79.